# Debug registers are currently printed only on FreeBSD.
# REQUIRES: system-freebsd
# REQUIRES: native && (target-x86 || target-x86_64) && dbregs-set
# RUN: %clangxx_host -g %p/Inputs/x86-db-read.cpp -o %t
# RUN: %lldb -b -s %s %t | FileCheck %s
process launch
# CHECK: Process {{[0-9]+}} stopped

watchpoint set variable -w write g_8w
# CHECK: Watchpoint created: Watchpoint 1: addr = 0x{{[0-9a-f]*}} size = 1 state = enabled type = w
watchpoint set variable -w read_write g_16rw
# CHECK: Watchpoint created: Watchpoint 2: addr = 0x{{[0-9a-f]*}} size = 2 state = enabled type = rw
watchpoint set variable -w write g_32w
# CHECK: Watchpoint created: Watchpoint 3: addr = 0x{{[0-9a-f]*}} size = 4 state = enabled type = w
watchpoint set variable -w read_write g_32rw
# CHECK: Watchpoint created: Watchpoint 4: addr = 0x{{[0-9a-f]*}} size = 4 state = enabled type = rw

expression &g_8w
# CHECK: (uint8_t *) $0 = [[VAR8W:0x[0-9a-f]*]]
expression &g_16rw
# CHECK: (uint16_t *) $1 = [[VAR16RW:0x[0-9a-f]*]]
expression &g_32w
# CHECK: (uint32_t *) $2 = [[VAR32W:0x[0-9a-f]*]]
expression &g_32rw
# CHECK: (uint32_t *) $3 = [[VAR64RW:0x[0-9a-f]*]]

register read --all
# CHECK-DAG: dr0 = [[VAR8W]]
# CHECK-DAG: dr1 = [[VAR16RW]]
# CHECK-DAG: dr2 = [[VAR32W]]
# CHECK-DAG: dr3 = [[VAR64RW]]
# CHECK-DAG: dr6 = 0x{{(00000000)?}}ffff0ff0
# CHECK-DAG: dr7 = 0x{{(00000000)?}}fd7104aa

process continue
# CHECK: Process {{[0-9]+}} exited with status = 0
